<?php


//print_r( $_POST );
//exit;
$variavel_combo = array();
$instancia_combo = array();
$list_combo = array();
$datas_combo = array();
$salvar = '';
$imagem_salvar = '';
$imagem_excluir = '';
$grid_top = '';
$grid_list = '';
$var = '';

for( $i = 1; ( $i - 1 ) < sizeof( $_POST["campo"] ); $i++ ){
	
	if( $_POST["tipo"][$i] == 3 ){
		
		$salvar .= '				"' . strtolower( $_POST["campo"][$i] ) . '"		=> date( "Y-m-d" , strtotime( $_POST["p' . strtolower( $_POST["campo"][$i] ) . '"] ) ),';
		$salvar .= "\n";
		
	}else if( $_POST["tipo"][$i] == 8 ){
		
		$salvar .= '				"id_' . strtolower( $_POST["entidaderel"][$i] ) . '"		=> $_POST["pid_' . strtolower( $_POST["entidaderel"][$i] ) . '"],';
		$salvar .= "\n";
		$variavel_combo[] 	= '$' . strtolower( $_POST["entidaderel"][$i] );
		$instancia_combo[] 	= '$this->' . strtolower( $_POST["entidaderel"][$i] ).' = new '.strtolower( $_POST["entidaderel"][$i] ).'Model();';
		$list_combo[] 		= '$' . strtolower( $_POST["entidaderel"][$i] ) . ' = $this->' . strtolower( $_POST["entidaderel"][$i] ).'->lista();';
		$datas_combo[]		= '$datas["' . strtolower( $_POST["entidaderel"][$i] ) . '"] = $' . strtolower( $_POST["entidaderel"][$i] ) . ';';
		$var = sizeof( $variavel_combo ) > 0 ? ',' : '' .'';
		
	}else if( $_POST["tipo"][$i] == 6 ){
		
		
		$imagem_salvar .= '
		if( !empty( $_FILES["p' . strtolower( $_POST["campo"][$i] ) . '"]["name"]) && $id > 0 ){		
				$file = $this->db->Id( $id );
				if( $file[0]["' . strtolower( $_POST["campo"][$i] ) . '"] ){
					$this->upload->delete( "' . strtolower( $_POST["entidade"] ) . '/".$file[0]["' . strtolower( $_POST["campo"][$i] ) . '"] );
				}
			}
			
			
			';
			
			$imagem_salvar .= 'if ( !empty( $_FILES["p' . strtolower( $_POST["campo"][$i] ) . '"]["name"] ) ){   
		       
		   		if( $filename = $this->upload->setFile( $_FILES["p' . strtolower( $_POST["campo"][$i] ) . '"] , $id."_".$_FILES["p' . strtolower( $_POST["campo"][$i] ) . '"]["name"] )->setPath( "/data/'. strtolower(  $_POST["entidade"] ).'/" )->upload( 800 ) ) {				
					$dados = array( "' . strtolower( $_POST["campo"][$i] ) . '"	=> $filename );
					$this->db->salvar( $dados , $id );
				}
				
           	}';
			
		$imagem_excluir .= 
			'if( $id > 0 )
			{					
				$file = $this->db->Id( $id );				
				if( $file[0]["' . strtolower( $_POST["campo"][$i] ) . '"] )
				{
					$this->upload->delete( "'. strtolower(  $_POST["entidade"] ).'/".$file[0]["' . strtolower( $_POST["campo"][$i] ) . '"] );
				}
			}';
	
	}
	else
	{
		$salvar .= '				"' . strtolower( $_POST["campo"][$i] ) . '"		=> $_POST["p' . strtolower( $_POST["campo"][$i] ) . '"],';
		$salvar .= "\n";	
	}
	
}	










		
$src = '<?php			
				
    class '.$_POST["entidade"].' extends Controller{
		
		private $db, $redirect , $util , $auth , $upload '.$var.' ' . implode( ",", $variavel_combo ).';
		public $html;
        

	public function init(){
		$this->db = new '.$_POST["entidade"].'Model();
		$this->redirect = new RedirectorHelper();
		$this->util = new UtilHelper();
		$this->html = new HtmlHelper();
		$this->upload = new UploadHelper();
		$this->auth = new AuthHelper();			
		'.implode( "
		", $instancia_combo ).'
	}
	
 	';	
	

// #ADMIN
$src .= '      
	public function admin(){		
		
		$this->Auntent(); // Autenticação 
				
		$lista = $this->db->lista();
		'.implode( "
		",$list_combo ).'
		
		'.implode("
		" , $datas_combo ).'
		$datas["lista"] = $lista;
		$this->view( "" , $datas);
	}
	
	';	
	
// #EDITAR
$src .= '	
	public function Editar(){
		
		$this->Auntent(); // Autenticação
		
		$id = $this->getParam("secao");
		
		'.implode( "
		",$list_combo ).'
		
		$lista = $this->db->lista();	
		$edit = $this->db->Id( $id );
		
		'.implode("
		" , $datas_combo ).'
		$datas["lista"] = $lista;
		$datas["edit"] = $edit;
		$this->view( "admin" , $datas);
	}
		
	';	


	
// #SALVAR
$src .= '		
	public function Salvar(){
		
		$this->Auntent(); // Autenticação
		
		$id = $_POST["secao"];
	
		if( $_POST ){
			$dados = array(
';
			
$src .= $salvar;
$src .= '				"status"		=> $_POST["pstatus"]';

$src .= '

			);
	
			$id = $this->db->salvar( $dados , $id );
			
			' . $imagem_salvar . '
			
		}
		
		$this->redirect->goToControllerAction( "' . strtolower( $_POST["entidade"] ) . '" , "admin" );
	}
		
	';
	
	

	
// #EXCLUIR
$src .= '
	public function Excluir(){
		
		$this->Auntent(); // Autenticação
		
		$id = $this->getParam("secao");
		
		' . $imagem_excluir . '
		
		if( $id > 0 ){				
			$this->db->excluir( $id  );
		}
							
		$this->redirect->goToControllerAction( "' . strtolower( $_POST["entidade"] ) . '" , "admin" );
	}
';
	


// #STATUS
$src .= '

	public function Status(){
		$this->Auntent(); // Autenticação 
					
		$id = $this->getParam("secao");
					
		$this->db->setStatus( $id );
		
		$this->redirect->goToControllerAction( "' . strtolower( $_POST["entidade"] ) . '" , "admin" );
	}
';	



// #ATENTICAÇÃO #ADMIN
$src .= '

	private function Auntent(){
		// AUTENTICAÇÃO 
		$this->auth->Autentica( "LoginAdmin" , null, null , "admin", "login"  );
	}

';	


	/*
	
	
	 public function Index_action(){
			
			$id = $this->getParam("id");
			if( $id ){
				$exibe = $this->db->listaShow( null , null, $id );01
			}
			
			$a = $this->getParam("a");
			if( empty( $a ) ){
				$a = "A";
			}
			
			$do = $_POST["do"];
			
			$lista = $this->db->listaShow( $a , $do );			        
			$indice = $this->db->listaIndice();
				
            $datas['lista'] = $lista;
			$datas['indice'] = $indice;
			$datas['exibe'] = $exibe;

            $this->view('', $datas);
        }
		
		
		
	
	*/

$src .= '
}';

	
//	echo "<textarea cols='200' rows='100'>".$src."</textarea>";